第4回 pythonによる条件文と繰り返し処理
条件式をもとに、処理を分岐させることができます。
True
False
True
if分岐とforループif分岐ある条件を
それぞれで別の処理をしたい場合、if分岐を使う。
ifのみの処理ifの後に半角スペース:を書くtabキーを押してインデントを入れる。Trueの時にインデントされている部分が実行されます。aは負の数です
ifのみ)-1は負の数です。
-1の絶対値は1です。
aを変えて実行してみてください。ifとelseifのインデントのブロックの後に使う。if以下が成立しないとき」にelseのブロックの処理が行われる。aは負の数です
aを変えて実行してみてください。aは負の数ではありません
elif文ifとelseの間に挟めます。ifで条件を満たさなかった際に、さらに条件を足せます。aはゼロです
forループ繰り返しで同じ処理を行う場合、forループを使います。
いまはi=10です。
いまはi=20です。
いまはi=30です。
inの後のリスト[0,1,2]の左から順にiに代入されていきます。iが一つ進みます。iが繰り返されたら、ループが終了します。forで扱うリストrange(y)で0からy以下で、1ずつ増えていくようなリストを入れることができる。いまはi=0です。
いまはi=1です。
いまはi=2です。
いまはi=3です。
いまはi=4です。
iに関連付けないでも、要素の数だけループしてくれる。おれならできる
おれならできる
おれならできる
おれならできる
おれならできる
range(x,y)でxからy以下で、1ずつ増えていくようなリストを入れることができる。いまはi=2です。
いまはi=3です。
いまはi=4です。
forで扱う代数代数は別にiじゃなくてもよい。
あいつは佐藤です。
あいつは鈴木です。
あいつは近藤です。
len()関数で長さを取得したりする。佐藤は20歳です。
鈴木は23歳です。
近藤は34歳です。
\sum_{x=0}^{10} x = 0+1+2+\cdots + 10
55
<list>.append(x)でxを<list>の後ろに追加する。
[]
[10]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
100
forよりバグが起きやすいので注意(無限処理)。1から100までの中で、7の倍数のみを取り出してみよう。
result = [] # 結果を保持するリストを作成する
for i in range(1,101): # 1から100までのiについて
m = i%7 # 7で割った余りを計算
if m==0: # 7で割った余りが0なら、割り切れる
result.append(i) # 割り切れる場合、結果をリストに保存する
## 結果を表示する
print("--------------------------------------")# ハイフンで線を入れる(単に見やすくするため)
print("1から100までで、7の倍数は次の数だけ存在する。")
print(len(result))
print("--------------------------------------") # ハイフンで線を入れる(単に見やすくするため)
print("具体的に書くと、次の数が該当する。")
print(result)--------------------------------------
1から100までで、7の倍数は次の数だけ存在する。
14
--------------------------------------
具体的に書くと、次の数が該当する。
[7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98]
同じような処理を何度も繰り返す際に、処理をひとまとめにしたものを関数という。
def f(x):で変数xを持つfという関数を作る。returnで指定できる。[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def make_to_list(x):
"""
コメントアウトで関数の中身の説明を入れたりします。
デバッグしやすくなるためです。
------------
input:
x : int
------------
output: 0 to x list
"""
# 実際の処理はここから
return_list = [] # 空のリストを作る
for i in range(x+1): # x+1より小さい整数(x)まで
return_list.append(i) # return_listに追加していく
return return_list # return_listを返す
make_to_list(10) # テストで出力してみる[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
ある数xの小数第n位を取得する関数を作ろう。
def get_nth(x,n):
"""
xの小数第n位を取得する
input
x (float) : 小数を取得したい数
n (int) : 取得する小数点以下第n位のn
output (int) :
xの小数第n位の値
"""
y = x*10**n # 小数第n位の値が1の位にくるようにする
m = y%10 # 10で割った余りを計算すると、1の位+小数点以下になる
m_text = str(m) # 文字列に変換
num_text = m_text[0] # 一番初めの値を取得したいので、第0要素を取得
num = int(num_text) # num_textは文字列形式で保存されているので、整数形式に変換
return num # 結果を返す。
pi = 3.14159265359
print(get_nth(pi, 2))4
第4回 pythonによる条件文と繰り返し処理